import java.lang.reflect.Array;
import java.util.Arrays;

public class j2023619 {
    public static void func1() {
        int[] array1 = new int[3];
        array1[0] = 10;
        array1[1] = 20;
        array1[2] = 30;
        int[] array2 = new int[]{1, 2, 3, 4, 5};
        array2[0] = 100;
        array2[1] = 200;
        array1 = array2;
        array1[2] = 300;
        array1[3] = 400;
        array2[4] = 500;
        for (int i = 0; i < array2.length; i++) {
            System.out.println(array2[i]);
        }
    }
    public  static  String myToString(int []arr){
        String ret="[";
        for (int i = 0; i < arr.length; i++) {
            ret+=arr[i];
            if(i!=arr.length-1){
                ret+=", ";
            }
        }
        ret+="]";
        return ret;
    }
    //数组作为函数的参数
    public static  void func(int[] arr){
        arr[0]=10;
        System.out.println("arr[0]is"+arr[0]);
    }
    //数组作为返回值
    public static  int[] fib(int n){
        if(n<0){
            return null;
        }
        int []arr=new int[n];
        arr[0]=arr[1]=1;
        for (int i = 2; i <n; i++) {
            arr[i]=arr[i-1]+arr[i-2];
        }
        return arr;
    }
    //实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}
    public  static  void transform(int[]arr){
        for (int i = 0; i < arr.length; i++) {
            arr[i]*=2;
        }
        System.out.println(Arrays.toString(arr));
    }
    //实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值(注意方法的返回值类型).
    public static double avg(int[]arr){
        double sum=0;
        for (int i = 0; i < arr.length; i++) {
            sum+=arr[i];
        }
        double averge=0;
        averge=sum/arr.length;
        return averge;
    }
    //调整数组顺序使得奇数位于偶数之前。调整之后，不关心大小顺序。

    //如数组：[1,2,3,4,5,6]

    //调整后可能是：[1, 5, 3, 4, 2, 6]
    public static void  f(int[]arr){
        int []copy=new int[arr.length];
        int k=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]%2==1){
                copy[k++]=arr[i];
            }
        }
        for (int i = 0; i <arr.length; i++) {
            if (arr[i] % 2 == 0) {
                copy[k++] = arr[i];
            }
        }
            arr=Arrays.copyOf(copy,copy.length);
            System.out.println(Arrays.toString(arr));
    }
    public static void BubSort(int[]arr){
        for (int i = 0; i <arr.length-1; i++) {
            boolean flag=true;
            for (int j = 0; j <arr.length-1-i; j++) {
                if(arr[j]>arr[j+1]){
                    int tmp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=tmp;
                    flag=false;
                }
            }
            if(flag==true){
                break;
            }
        }
    }
    //输入：nums = [2,7,11,15], target = 9

    //输出：[0,1]

    //解释：因为 nums[0] + nums[1] == 9 ，返回 [0, 1] 。
    public  static int[] find(int[]arr,int target){
       int[]copy=new int[10];
       int k=0;
        for (int i = 0; i <arr.length; i++) {
            for (int j = 0; j <arr.length; j++) {
                if(arr[i]+arr[j]==target&&i>j){
                       copy[k]=i;
                       copy[++k]=j;
                       k++;
                }
            }
        }
        int[]ret=new int[k];
        ret=Arrays.copyOfRange(copy,0,k);
        return ret;
    }
    //给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。
    public static void FindSingleDog(int[]arr){
        int SingleNum=0;
        for (int i = 0; i <arr.length; i++) {
            SingleNum^=arr[i];
        }
        System.out.println(SingleNum);
    }
    //给定一个大小为 n 的数组，找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
    //你可以假设数组是非空的，并且给定的数组总是存在多数元素。
    //输入：[2,2,1,1,1,2,2]
    //输出：2
    public static void FindMostNumber(int[]arr) {
        int[] rember = new int[10];
        int j = 0;
        for (j = 0; j < arr.length; j++) {
            for (int i = 0; i < arr.length; i++) {
                if (arr[j] == arr[i]) {
                    rember[j]++;
                }
            }
        }
            int max = 0;
            for (int i = 0; i < arr.length; i++) {
                if (rember[i] > rember[max]) {
                    max = i;
                }
            }
            if (rember[max] > arr.length >> 1) {
                System.out.println(arr[max]);
            }
    }
    //给你一个整数数组 arr，请你判断数组中是否存在连续三个元素都是奇数的情况：如果存在，请返回 true ；否则，返回 false 。
    //输入：arr = [1,2,34,3,4,5,7,23,12]
    //输出：true
    //解释：存在连续三个元素都是奇数的情况，即 [5,7,23] 。
    public static boolean CoddInteger(int[]arr){
        int j=0;
        for (int i = 0; i < arr.length; i++) {
            for ( j = i; j < i+3; j++) {
                if(arr[j] % 2!=1){
                    break;
                }
            }
            if(j==i+3){
                return true;
            }
        }
        return false;
    }
    public static void main(String[] args) {
        //int [] arr=new int[10];
  /*      int []arr=new int[]{1,2,3,4};
       *//* for (int x:arr) {
            System.out.print(x+" ");
        }*//*
       *//* for (int i = 0; i <arr.length; i++) {
            System.out.print(arr[i]+" ");
        }*//*
        String s= Arrays.toString(arr);
        String a=myToString(arr);
        System.out.println(s);
        System.out.println(a);*/
       /* int[]arr={1,2,3};
        func(arr);
        for (int i = 0; i <arr.length; i++) {
            System.out.println(arr[i]);
        }*/
      /*  int []arr=fib(10);
        for (int x:arr) {
            System.out.print(x+" ");
        }*/
        int[]arr={6,5,4,3,2,1};
        //transform(arr);
        BubSort(arr);
        System.out.println(Arrays.toString(arr));
        int[]arr1={2,7,11,15};
        System.out.println(Arrays.toString(find(arr1, 9)));
        int []arr2={1,1,2,2,3,3,4};
        FindSingleDog(arr2);
        int []arr3={2,2,1,1,1,2,2};
        FindMostNumber(arr3);
        int []arr4={1,2,34,3,4,5,7,23,12};
        if(CoddInteger(arr4)) {
            System.out.println("有三个连续的奇数");
        }
        else{
            System.out.println("没有三个连续的奇数");
        }
    }
}
